
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta charset="utf-8" />
    <title>Method and Theory &#8212; iprPy 0.10.2 documentation</title>
    <link rel="stylesheet" href="../../_static/basic.css" type="text/css" />
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
    <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../../_static/jquery.js"></script>
    <script type="text/javascript" src="../../_static/underscore.js"></script>
    <script type="text/javascript" src="../../_static/doctools.js"></script>
    <script type="text/javascript" src="../../_static/language_data.js"></script>
    <script crossorigin="anonymous" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"></script>
    <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
    <script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"inlineMath": [["$", "$"], ["\\(", "\\)"]], "processEscapes": true, "ignoreClass": "document", "processClass": "math|output_area"}})</script>
    <link rel="index" title="Index" href="../../genindex.html" />
    <link rel="search" title="Search" href="../../search.html" />
    <link rel="next" title="Input script parameters" href="parameters.html" />
    <link rel="prev" title="Introduction" href="intro.html" /> 
  </head><body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="parameters.html" title="Input script parameters"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="intro.html" title="Introduction"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../../index.html">iprPy 0.10.2 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="../../calculation_styles.html" >Calculation Styles</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="index.html" accesskey="U">stacking_fault_map_2D</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="method-and-theory">
<h1>Method and Theory<a class="headerlink" href="#method-and-theory" title="Permalink to this headline">¶</a></h1>
<p>First, an initial system is generated. This is accomplished using
atomman.defect.StackingFault, which</p>
<ol class="arabic simple">
<li><p>Starts with a unit cell system.</p></li>
<li><p>Generates a transformed system by rotating the unit cell such that
the new system’s box vectors correspond to crystallographic
directions, and filled in with atoms to remain a perfect bulk cell
when the three boundaries are periodic.</p></li>
<li><p>All atoms are shifted by a fractional amount of the box vectors if
needed.</p></li>
<li><p>A supercell system is constructed by combining multiple replicas of
the transformed system.</p></li>
<li><p>The system is then cut by making one of the box boundaries
non-periodic. A limitation placed on the calculation is that the
normal to the cut plane must correspond to one of the three Cartesian
(<span class="math notranslate nohighlight">\(x\)</span>, <span class="math notranslate nohighlight">\(y\)</span>, or <span class="math notranslate nohighlight">\(z\)</span>) axes. If true, then of the
system’s three box vectors (<span class="math notranslate nohighlight">\(\vec{a}\)</span>, <span class="math notranslate nohighlight">\(\vec{b}\)</span>, and
<span class="math notranslate nohighlight">\(\vec{c}\)</span>), two will be parallel to the plane, and the third
will not. The non-parallel box vector is called the cutboxvector, and
for LAMMPS compatible systems, the following conditions can be used
to check the system’s compatibility:</p>
<ul class="simple">
<li><p>cutboxvector = ‘c’: all systems allowed.</p></li>
<li><p>cutboxvector = ‘b’: the system’s yz tilt must be zero.</p></li>
<li><p>cutboxvector = ‘a’: the system’s xy and xz tilts must be zero.</p></li>
</ul>
</li>
</ol>
<p>A LAMMPS simulation performs an energy/force minimization on the system
where the atoms are confined to only relax along the Cartesian direction
normal to the cut plane.</p>
<p>A mathematical fault plane parallel to the cut plane is defined in the
middle of the system. A generalized stacking fault system can then be
created by shifting all atoms on one side of the fault plane by a
vector, <span class="math notranslate nohighlight">\(\vec{s}\)</span>. The shifted system is then relaxed using the
same confined energy/force minimization used on the non-shifted system.
The generalized stacking fault energy, <span class="math notranslate nohighlight">\(\gamma\)</span>, can then be
computed by comparing the total energy of the system, <span class="math notranslate nohighlight">\(E_{total}\)</span>,
before and after <span class="math notranslate nohighlight">\(\vec{s}\)</span> is applied</p>
<div class="math notranslate nohighlight">
\[\gamma(\vec{s}) = \frac{E_{total}(\vec{s}) - E_{total}(\vec{0})}{A},\]</div>
<p>where <span class="math notranslate nohighlight">\(A\)</span> is the area of the fault plane, which can be computed
using the two box vectors, <span class="math notranslate nohighlight">\(\vec{a_1}\)</span> and <span class="math notranslate nohighlight">\(\vec{a_2}\)</span>, that
are not the cutboxvector.</p>
<div class="math notranslate nohighlight">
\[A = \left| \vec{a_1} \times \vec{a_2} \right|,\]</div>
<p>Additionally, the relaxation normal to the glide plane is characterized
using the center of mass of the atoms above and below the cut plane.
Notably, the component of the center of mass normal to the glide/cut
plane is calculated for the two halves of the the system, and the
difference is computed</p>
<div class="math notranslate nohighlight">
\[\delta = \left&lt;x\right&gt;^{+} - \left&lt;x\right&gt;^{-}.\]</div>
<p>The relaxation normal is then taken as the change in the center of mass
difference after the shift is applied.</p>
<div class="math notranslate nohighlight">
\[\Delta\delta = \delta(\vec{s}) - \delta(\vec{0}).\]</div>
<p>The stacking_fault_map_2D calculation evaluates both <span class="math notranslate nohighlight">\(\gamma\)</span> and
<span class="math notranslate nohighlight">\(\Delta\delta\)</span> for a complete 2D grid of <span class="math notranslate nohighlight">\(\vec{s}\)</span> values.
The grid is built by taking fractional steps along two vectors parallel
to the shift plane.</p>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h4>Previous topic</h4>
  <p class="topless"><a href="intro.html"
                        title="previous chapter">Introduction</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="parameters.html"
                        title="next chapter">Input script parameters</a></p>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="parameters.html" title="Input script parameters"
             >next</a> |</li>
        <li class="right" >
          <a href="intro.html" title="Introduction"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../../index.html">iprPy 0.10.2 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="../../calculation_styles.html" >Calculation Styles</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="index.html" >stacking_fault_map_2D</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.1.2.
    </div>
  </body>
</html>